/*
  学习目标：ES6中class内的关键字，static 静态成员
  */
import React, { Component } from 'react';
import PropTypes from 'prop-types';
class Person {
  // 原型方法
  sayHello() {
    console.log('hello  ----->  ');
  }

  // 实例方法
  sayHi2 = () => {};
  // 静态成员：
  //     通过类名.xxx直接访问的属性或方法，叫静态属性或静态方法，统称静态成员
  // 实现成员：
  //     通过实例对象.xxx访问的属性或方法，叫做实例成员

  // static把一个属性或方法，变为静态属性或静态方法
  // 语法：
  // static只能用在class中
  // static方法属性或方法前即可
  static sayHi = () => {
    console.log('hi  ----->  ');
  };
}

const zs = new Person();
console.log('zs  ----->  ', zs);
console.log('Person.sayHi  ----->  ', Person.sayHi);

export default class App extends Component {
  render() {
    return (
      <div>
        <Child></Child>
      </div>
    );
  }
}

class Child extends React.Component {
  // 🔔等同于Child.propTypes = {} 写法
  static propTypes = {
    msg: PropTypes.string.isRequired,
  };

  render() {
    return (
      <div>
        <h1>Child</h1>
      </div>
    );
  }
}
